package com.didispace;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

@EnableCircuitBreaker
@EnableDiscoveryClient
@SpringBootApplication
public class ConsumerApplication {

	@Bean
	@LoadBalanced	// 在该主类中创建 RestTemplate 的 Spring Bean 实例，并通过 @LoadBalanced 注解开启客户端负载均衡。 p49
	RestTemplate restTemplate() {
		return new RestTemplate();
	}
	public static void main(String[] args) {
		SpringApplication.run(ConsumerApplication.class, args);
	}

}

// http://localhost:9000/ribbon-consumer/
// Hello World
// error

// 未开启 // @EnableCircuitBreaker
// http://localhost:9000/ribbon-consumer/
// {
// 	"timestamp": 1651459020315,
// 	"status": 500,
// 	"error": "Internal Server Error",
// 	"exception": "org.springframework.web.client.ResourceAccessException",
// 	"message": "I/O error on GET request for \"http://HELLO-SERVICE/hello1?name=didi\": Connection refused: connect;
// 	nested exception is java.net.ConnectException: Connection refused: connect",
// 	"path": "/ribbon-consumer/"
// }